﻿#ifndef PST_GRAPHSURFACE_H
#define PST_GRAPHSURFACE_H

#include <QWidget>  
#include <vtkSmartPointer.h>  

#include "TxtTo2DSurfaceGenerator.h"

class vtkRenderer;
class vtkAxesActor;
class QVTKOpenGLNativeWidget;
class vtkGenericOpenGLRenderWindow;
class vtkOrientationMarkerWidget;

namespace pst
{
    class GraphSurface : public QWidget
    {
        Q_OBJECT

    public:
        explicit GraphSurface(QWidget* parent = 0);
        ~GraphSurface();

        void addSurfaceActor(const QString& fileName);
        bool saveScreenShot(const QString& path);

    private:
        void AddCornerAxes();
    private:
        QVTKOpenGLNativeWidget* m_qvtkWidget;
        vtkSmartPointer<vtkRenderer> m_render3D;
        vtkSmartPointer<vtkGenericOpenGLRenderWindow> m_renderWindow3D;
        vtkSmartPointer<vtkAxesActor> m_leftDownCornerAxes;
        TxtTo2DSurfaceGenerator* m_sufaceGenerator;
        vtkSmartPointer<vtkOrientationMarkerWidget> m_leftDownCornerWidget;
    };
}

#endif
